clear all
set more off, perm
use citation, clear

keep if cited_ctr == "KR"
/*
 cited_code |      Freq.     Percent        Cum.
------------+-----------------------------------
          A |  4,735,516       63.80       63.80
         A0 |          3        0.00       63.80
         A1 |        549        0.01       63.81
         A2 |          3        0.00       63.81
         A3 |          1        0.00       63.81
         A5 |          1        0.00       63.81
          B |        427        0.01       63.82
         B1 |  1,625,023       21.89       85.71
         B2 |        201        0.00       85.71
         B3 |          2        0.00       85.71
         B9 |          1        0.00       85.71
          C |          3        0.00       85.71
         C1 |          1        0.00       85.71
          T |          2        0.00       85.71
          U |    381,771        5.14       90.86
         U1 |          7        0.00       90.86
         U9 |          1        0.00       90.86
          Y |        197        0.00       90.86
         Y1 |    678,296        9.14      100.00
         Y2 |         60        0.00      100.00
------------+-----------------------------------
      Total |  7,422,065      100.00
*/
keep if cited_code == "A" | cited_code =="B1"
* -> 6,360,539 observations
drop cited_typecodename cited_date cited_ctr
format cited_num %18s

gen registernum = cited_num if substr(cited_num,10, 4) == "0000"
replace registernum = substr(registernum, 1, 2) + "-" +substr(registernum, 3,7) + "-0000" if registernum != ""
gen opennum = cited_num if cited_code == "A"
replace opennum = substr(opennum, 1, 2) + "-" + substr(opennum, 3,4) +"-" + substr(opennum, 7,7) if opennum != ""



************************************
***** merging with numbers.dta *****
************************************

merge m:1 registernum using "numbers_2002-2016_duplicatesdropped.dta", keepusing(appnum) generate(merge_regi)
/*

    Result                           # of obs.
    -----------------------------------------
    not matched                     5,729,957
        from master                 4,970,109  (merge_regi==1)
        from using                    759,848  (merge_regi==2)

    matched                         1,390,430  (merge_regi==3)
    -----------------------------------------
	
- merge_regi==1 => citation 파일에서 cited_num이 공개번호로 써진 경우
- merge_regi==2 => 인용된 적 없는 appnum-registernum의 조합
- merge_regi==3 => registernum으로 써진 cited_num을 appnum 표현으로 옳게 바꾼 경우
*/
drop if merge_regi==2
rename appnum appnum_registered
drop merge_regi

merge m:1 opennum using "numbers_opennumdropped.dta", keepusing(appnum) generate(merge_open)
/*
numbers_opennumdropped는 위 numbers~ 파일에서 drop if opennum==" "  한 파일 (if not, opennum cannot uniquely identify observations)

    Result                           # of obs.
    -----------------------------------------
    not matched                     4,600,834
        from master                 4,231,988  (merge_open==1)
        from using                    368,846  (merge_open==2)

    matched                         2,128,551  (merge_open==3)
    -----------------------------------------

- merge_open==1 => cited_num 이 registernum 형식으로 써진 경우 혹은 인용된 특허가 최종등록되지 않은 경우
- merge_open==2 => 인용된 적 없는 appnum-opennum 조합
- merge_open==3 => 제대로 매치됨
*/
drop if merge_open==2
rename appnum appnum_open
drop merge_open



****************************
***** replacing appnum *****
****************************

destring cited_num, replace
replace cited_num = appnum_registered if appnum_registered !=. & appnum_open ==.
replace cited_num = appnum_open if appnum_registered ==. & appnum_open !=.
replace cited_num=. if appnum_registered==. & appnum_open==.

/*
코드를 모두 돌리면 registernum 이 분명히 있음에도 cited_num에 해당 특허의 출원번호가 안찍히는 경우가 있음
(예: citing == 1020160010810)
이는 numbers 파일을 생성할 때 drop if open_year - app_year>2 | open_year < app_year 를 하는 과정에서 날아간 것.
혹은 citing == 1020050083392 인 경우 조회되는 cited의 등록번호 10-0304886-0000 는 등록연도가 2001년이어서 지워짐

총 6,360,539개의 citation observations
cited_num ==. 인 경우를 제외하면 (등록번호가 있음에도 그 출원번호가 조회되지 않는 경우, 등록되지 않은 특허를 인용한 경우)
총 3,518,981개의 citation observations
*/

drop registernum opennum appnum_registered appnum_open

save citation.dta, replace

